<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GtkTreeSortable</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GTK+ 3 参考手册">
<link rel="up" href="TreeWidgetObjects.html" title="树、列表和图标网格构件">
<link rel="prev" href="gtk3-GtkIconView.html" title="GtkIconView">
<link rel="next" href="gtk3-GtkTreeModelSort.html" title="GtkTreeModelSort">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="gtk3-GtkIconView.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="TreeWidgetObjects.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GTK+ 3 参考手册</th>
<td><a accesskey="n" href="gtk3-GtkTreeModelSort.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gtk3-GtkTreeSortable.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#gtk3-GtkTreeSortable.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry">
<a name="gtk3-GtkTreeSortable"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gtk3-GtkTreeSortable.top_of_page"></a>GtkTreeSortable</span></h2>
<p>GtkTreeSortable — The interface for sortable models used by GtkTreeView</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="gtk3-GtkTreeSortable.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;gtk/gtk.h&gt;

                    <a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable">GtkTreeSortable</a>;
struct              <a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortableIface" title="struct GtkTreeSortableIface">GtkTreeSortableIface</a>;
<a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                (<a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeIterCompareFunc" title="GtkTreeIterCompareFunc ()">*GtkTreeIterCompareFunc</a>)           (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeModel.html#GtkTreeModel" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a> *model</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkTreeModel.html#GtkTreeIter" title="struct GtkTreeIter"><span class="type">GtkTreeIter</span></a> *a</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkTreeModel.html#GtkTreeIter" title="struct GtkTreeIter"><span class="type">GtkTreeIter</span></a> *b</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkTreeSortable.html#gtk-tree-sortable-sort-column-changed" title="gtk_tree_sortable_sort_column_changed ()">gtk_tree_sortable_sort_column_changed</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkTreeSortable.html#gtk-tree-sortable-get-sort-column-id" title="gtk_tree_sortable_get_sort_column_id ()">gtk_tree_sortable_get_sort_column_id</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *sort_column_id</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkSortType" title="enum GtkSortType"><span class="type">GtkSortType</span></a> *order</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkTreeSortable.html#gtk-tree-sortable-set-sort-column-id" title="gtk_tree_sortable_set_sort_column_id ()">gtk_tree_sortable_set_sort_column_id</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sort_column_id</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkSortType" title="enum GtkSortType"><span class="type">GtkSortType</span></a> order</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkTreeSortable.html#gtk-tree-sortable-set-sort-func" title="gtk_tree_sortable_set_sort_func ()">gtk_tree_sortable_set_sort_func</a>     (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sort_column_id</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeIterCompareFunc" title="GtkTreeIterCompareFunc ()"><span class="type">GtkTreeIterCompareFunc</span></a> sort_func</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gtk3-GtkTreeSortable.html#gtk-tree-sortable-set-default-sort-func" title="gtk_tree_sortable_set_default_sort_func ()">gtk_tree_sortable_set_default_sort_func</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeIterCompareFunc" title="GtkTreeIterCompareFunc ()"><span class="type">GtkTreeIterCompareFunc</span></a> sort_func</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gtk3-GtkTreeSortable.html#gtk-tree-sortable-has-default-sort-func" title="gtk_tree_sortable_has_default_sort_func ()">gtk_tree_sortable_has_default_sort_func</a>
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="gtk3-GtkTreeSortable.description"></a><h2>Description</h2>
<p>
<a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> is an interface to be implemented by tree models which
support sorting. The <a class="link" href="gtk3-GtkTreeView.html#GtkTreeView" title="struct GtkTreeView"><span class="type">GtkTreeView</span></a> uses the methods provided by this interface
to sort the model.
</p>
</div>
<div class="refsect1">
<a name="gtk3-GtkTreeSortable.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GtkTreeSortable"></a><h3>GtkTreeSortable</h3>
<pre class="programlisting">typedef struct _GtkTreeSortable GtkTreeSortable;</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkTreeSortableIface"></a><h3>struct GtkTreeSortableIface</h3>
<pre class="programlisting">struct GtkTreeSortableIface {
  GTypeInterface g_iface;

  /* signals */
  void     (* sort_column_changed)   (GtkTreeSortable        *sortable);

  /* virtual table */
  gboolean (* get_sort_column_id)    (GtkTreeSortable        *sortable,
				      gint                   *sort_column_id,
				      GtkSortType            *order);
  void     (* set_sort_column_id)    (GtkTreeSortable        *sortable,
				      gint                    sort_column_id,
				      GtkSortType             order);
  void     (* set_sort_func)         (GtkTreeSortable        *sortable,
				      gint                    sort_column_id,
				      GtkTreeIterCompareFunc  sort_func,
				      gpointer                user_data,
				      GDestroyNotify          destroy);
  void     (* set_default_sort_func) (GtkTreeSortable        *sortable,
				      GtkTreeIterCompareFunc  sort_func,
				      gpointer                user_data,
				      GDestroyNotify          destroy);
  gboolean (* has_default_sort_func) (GtkTreeSortable        *sortable);
};
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkTreeIterCompareFunc"></a><h3>GtkTreeIterCompareFunc ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                (*GtkTreeIterCompareFunc)           (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeModel.html#GtkTreeModel" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a> *model</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkTreeModel.html#GtkTreeIter" title="struct GtkTreeIter"><span class="type">GtkTreeIter</span></a> *a</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkTreeModel.html#GtkTreeIter" title="struct GtkTreeIter"><span class="type">GtkTreeIter</span></a> *b</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
A GtkTreeIterCompareFunc should return a negative integer, zero, or a positive
integer if <em class="parameter"><code>a</code></em> sorts before <em class="parameter"><code>b</code></em>, <em class="parameter"><code>a</code></em> sorts with <em class="parameter"><code>b</code></em>, or <em class="parameter"><code>a</code></em> sorts after <em class="parameter"><code>b</code></em>
respectively. If two iters compare as equal, their order in the sorted model
is undefined. In order to ensure that the <a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> behaves as
expected, the GtkTreeIterCompareFunc must define a partial order on
the model, i.e. it must be reflexive, antisymmetric and transitive.
</p>
<p>
For example, if <em class="parameter"><code>model</code></em> is a product catalogue, then a compare function
for the "price" column could be one which returns
<code class="literal">price_of(<em class="parameter"><code>a</code></em>) - price_of(<em class="parameter"><code>b</code></em>)</code>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td>
<td>The <a class="link" href="gtk3-GtkTreeModel.html#GtkTreeModel" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a> the comparison is within</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
<td>A <a class="link" href="gtk3-GtkTreeModel.html#GtkTreeIter" title="struct GtkTreeIter"><span class="type">GtkTreeIter</span></a> in <em class="parameter"><code>model</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
<td>Another <a class="link" href="gtk3-GtkTreeModel.html#GtkTreeIter" title="struct GtkTreeIter"><span class="type">GtkTreeIter</span></a> in <em class="parameter"><code>model</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>Data passed when the compare func is assigned e.g. by
<a class="link" href="gtk3-GtkTreeSortable.html#gtk-tree-sortable-set-sort-func" title="gtk_tree_sortable_set_sort_func ()"><code class="function">gtk_tree_sortable_set_sort_func()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a negative integer, zero or a positive integer depending on whether
<em class="parameter"><code>a</code></em> sorts before, with or after <em class="parameter"><code>b</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-tree-sortable-sort-column-changed"></a><h3>gtk_tree_sortable_sort_column_changed ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_tree_sortable_sort_column_changed
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>);</pre>
<p>
Emits a <span class="type">"sort-column-changed"</span> signal on <em class="parameter"><code>sortable</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>sortable</code></em> :</span></p></td>
<td>A <a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-tree-sortable-get-sort-column-id"></a><h3>gtk_tree_sortable_get_sort_column_id ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_tree_sortable_get_sort_column_id
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *sort_column_id</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkSortType" title="enum GtkSortType"><span class="type">GtkSortType</span></a> *order</code></em>);</pre>
<p>
Fills in <em class="parameter"><code>sort_column_id</code></em> and <em class="parameter"><code>order</code></em> with the current sort column and the
order. It returns <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> unless the <em class="parameter"><code>sort_column_id</code></em> is 
<code class="literal">GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID</code> or 
<code class="literal">GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID</code>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>sortable</code></em> :</span></p></td>
<td>A <a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sort_column_id</code></em> :</span></p></td>
<td>The sort column id to be filled in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>order</code></em> :</span></p></td>
<td>The <a class="link" href="gtk3-Standard-Enumerations.html#GtkSortType" title="enum GtkSortType"><span class="type">GtkSortType</span></a> to be filled in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the sort column is not one of the special sort
column ids.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-tree-sortable-set-sort-column-id"></a><h3>gtk_tree_sortable_set_sort_column_id ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_tree_sortable_set_sort_column_id
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sort_column_id</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkSortType" title="enum GtkSortType"><span class="type">GtkSortType</span></a> order</code></em>);</pre>
<p>
Sets the current sort column to be <em class="parameter"><code>sort_column_id</code></em>. The <em class="parameter"><code>sortable</code></em> will
resort itself to reflect this change, after emitting a
<span class="type">"sort-column-changed"</span> signal. <em class="parameter"><code>sort_column_id</code></em> may either be
a regular column id, or one of the following special values:
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><code class="literal">GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID</code></span></p></td>
<td>the default sort function will be used, if it is set</td>
</tr>
<tr>
<td><p><span class="term"><code class="literal">GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID</code></span></p></td>
<td>no sorting will occur</td>
</tr>
</tbody>
</table></div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>sortable</code></em> :</span></p></td>
<td>A <a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sort_column_id</code></em> :</span></p></td>
<td>the sort column id to set</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>order</code></em> :</span></p></td>
<td>The sort order of the column</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-tree-sortable-set-sort-func"></a><h3>gtk_tree_sortable_set_sort_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_tree_sortable_set_sort_func     (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sort_column_id</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeIterCompareFunc" title="GtkTreeIterCompareFunc ()"><span class="type">GtkTreeIterCompareFunc</span></a> sort_func</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre>
<p>
Sets the comparison function used when sorting to be <em class="parameter"><code>sort_func</code></em>. If the
current sort column id of <em class="parameter"><code>sortable</code></em> is the same as <em class="parameter"><code>sort_column_id</code></em>, then 
the model will sort using this function.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>sortable</code></em> :</span></p></td>
<td>A <a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sort_column_id</code></em> :</span></p></td>
<td>the sort column id to set the function for</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sort_func</code></em> :</span></p></td>
<td>The comparison function</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>User data to pass to <em class="parameter"><code>sort_func</code></em>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
<td>Destroy notifier of <em class="parameter"><code>user_data</code></em>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-tree-sortable-set-default-sort-func"></a><h3>gtk_tree_sortable_set_default_sort_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_tree_sortable_set_default_sort_func
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeIterCompareFunc" title="GtkTreeIterCompareFunc ()"><span class="type">GtkTreeIterCompareFunc</span></a> sort_func</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                         <em class="parameter"><code><a href="../glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre>
<p>
Sets the default comparison function used when sorting to be <em class="parameter"><code>sort_func</code></em>.  
If the current sort column id of <em class="parameter"><code>sortable</code></em> is
<code class="literal">GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID</code>, then the model will sort using 
this function.
</p>
<p>
If <em class="parameter"><code>sort_func</code></em> is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, then there will be no default comparison function.
This means that once the model  has been sorted, it can't go back to the
default state. In this case, when the current sort column id of <em class="parameter"><code>sortable</code></em> 
is <code class="literal">GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID</code>, the model will be unsorted.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>sortable</code></em> :</span></p></td>
<td>A <a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sort_func</code></em> :</span></p></td>
<td>The comparison function</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>User data to pass to <em class="parameter"><code>sort_func</code></em>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
<td>Destroy notifier of <em class="parameter"><code>user_data</code></em>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-tree-sortable-has-default-sort-func"></a><h3>gtk_tree_sortable_has_default_sort_func ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gtk_tree_sortable_has_default_sort_func
                                                        (<em class="parameter"><code><a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a> *sortable</code></em>);</pre>
<p>
Returns <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the model has a default sort function. This is used
primarily by GtkTreeViewColumns in order to determine if a model can 
go back to the default state, or not.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>sortable</code></em> :</span></p></td>
<td>A <a class="link" href="gtk3-GtkTreeSortable.html#GtkTreeSortable" title="GtkTreeSortable"><span class="type">GtkTreeSortable</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if the model has a default sort function</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1">
<a name="gtk3-GtkTreeSortable.see-also"></a><h2>See Also</h2>
<a class="link" href="gtk3-GtkTreeModel.html#GtkTreeModel" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a>, <a class="link" href="gtk3-GtkTreeView.html#GtkTreeView" title="struct GtkTreeView"><span class="type">GtkTreeView</span></a>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.18</div>
</body>
</html>